]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
location: Split out PermissionStore
authorFlorian Müllner <fmuellner@gnome.org>
Sun, 19 Mar 2017 14:37:15 +0000 (15:37 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 20 Mar 2017 18:02:08 +0000 (19:02 +0100)
It doesn't make sense to tie the proxy code for flatpak's permission
store to the location indicator, just because that was the first
component to use it, so split it into a separate module.

https://bugzilla.gnome.org/show_bug.cgi?id=780252

js/js-resources.gresource.xml
js/misc/permissionStore.js [new file with mode: 0644]
js/ui/status/location.js

index b774299c8d076e9c523e1a67437b57c482c2beec..a1a419686725915f082636997c581576ac281bec 100644 (file)
@@ -23,6 +23,7 @@
     <file>misc/modemManager.js</file>
     <file>misc/objectManager.js</file>
     <file>misc/params.js</file>
+    <file>misc/permissionStore.js</file>
     <file>misc/smartcardManager.js</file>
     <file>misc/util.js</file>
     <file>misc/weather.js</file>
diff --git a/js/misc/permissionStore.js b/js/misc/permissionStore.js
new file mode 100644 (file)
index 0000000..b1dbe86
--- /dev/null
@@ -0,0 +1,30 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Gio = imports.gi.Gio;
+
+const PermissionStoreIface = '<node> \
+  <interface name="org.freedesktop.impl.portal.PermissionStore"> \
+    <method name="Lookup"> \
+      <arg name="table" type="s" direction="in"/> \
+      <arg name="id" type="s" direction="in"/> \
+      <arg name="permissions" type="a{sas}" direction="out"/> \
+      <arg name="data" type="v" direction="out"/> \
+    </method> \
+    <method name="Set"> \
+      <arg name="table" type="s" direction="in"/> \
+      <arg name="create" type="b" direction="in"/> \
+      <arg name="id" type="s" direction="in"/> \
+      <arg name="app_permissions" type="a{sas}" direction="in"/> \
+      <arg name="data" type="v" direction="in"/> \
+    </method> \
+  </interface> \
+</node>';
+
+const PermissionStoreProxy = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
+
+function PermissionStore(initCallback, cancellable) {
+    return new PermissionStoreProxy(Gio.DBus.session,
+                                    'org.freedesktop.impl.portal.PermissionStore',
+                                    '/org/freedesktop/impl/portal/PermissionStore',
+                                    initCallback, cancellable);
+};
index 668f93c2df2ab5ca2c53dab5611f8eeccdad055f..7988dd4fce61df416334ca942651ed069351d098 100644 (file)
@@ -9,6 +9,7 @@ const Main = imports.ui.main;
 const PanelMenu = imports.ui.panelMenu;
 const PopupMenu = imports.ui.popupMenu;
 const ModalDialog = imports.ui.modalDialog;
+const PermissionStore = imports.misc.permissionStore;
 const Shell = imports.gi.Shell;
 const Signals = imports.signals;
 const St = imports.gi.St;
@@ -62,26 +63,6 @@ var AgentIface = '<node> \
   </interface> \
 </node>';
 
-var PermissionStoreIface = '<node> \
-  <interface name="org.freedesktop.impl.portal.PermissionStore"> \
-    <method name="Lookup"> \
-      <arg name="table" type="s" direction="in"/> \
-      <arg name="id" type="s" direction="in"/> \
-      <arg name="permissions" type="a{sas}" direction="out"/> \
-      <arg name="data" type="v" direction="out"/> \
-    </method> \
-    <method name="Set"> \
-      <arg name="table" type="s" direction="in"/> \
-      <arg name="create" type="b" direction="in"/> \
-      <arg name="id" type="s" direction="in"/> \
-      <arg name="app_permissions" type="a{sas}" direction="in"/> \
-      <arg name="data" type="v" direction="in"/> \
-    </method> \
-  </interface> \
-</node>';
-
-const PermissionStore = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
-
 const Indicator = new Lang.Class({
     Name: 'LocationIndicator',
     Extends: PanelMenu.SystemIndicator,
@@ -253,10 +234,7 @@ const Indicator = new Lang.Class({
 
     _connectToPermissionStore: function() {
         this._permStoreProxy = null;
-        new PermissionStore(Gio.DBus.session,
-                           'org.freedesktop.impl.portal.PermissionStore',
-                           '/org/freedesktop/impl/portal/PermissionStore',
-                           Lang.bind(this, this._onPermStoreProxyReady));
+        new PermissionStore.PermissionStore(Lang.bind(this, this._onPermStoreProxyReady), null);
     },
 
     _onPermStoreProxyReady: function(proxy, error) {